
#include "explosion.h"
#include <malloc.h>


explosion allouer_explosion(explosion e) {
	e.pos_x = (int*) malloc(sizeof(int)) ;
	e.pos_y = (int*) malloc(sizeof(int)) ;
	e.image_explosion = (BITMAP*) malloc(sizeof(BITMAP*)) ;
	return e ;

}

void liberer_explosion (explosion e){
	free(e.pos_x) ;
	free(e.pos_y) ;
	free(e.image_explosion) ;
}

void liberer_all_explosion(explosion tab[NB_EXPLOSION]) {
	int i ;
	for (i=0;i<NB_EXPLOSION;i++) {
		liberer_explosion(tab[i]) ;
	}
}


explosion init_explosion(int position_x) {
	explosion e ;
	e = allouer_explosion(e) ;
	*e.pos_x = position_x*TAILLE_BLOC ;
	*e.pos_y = NB_BLOCS_HAUTEUR*TAILLE_BLOC ;
	e.image_explosion = load_bitmap("./images/explose.bmp",NULL) ;
	return e ;
}



void init_all_explosion(int tab[NB_EXPLOSION], explosion tab1[NB_EXPLOSION]) {

	int i ;
	for (i=0;i<NB_EXPLOSION;i++) {
		tab1[i] = init_explosion(tab[i]) ;
	}

}

void afficher_all_explosion(BITMAP* buffer,explosion tab[NB_EXPLOSION]) {

	int i ;
	for (i=0;i<NB_EXPLOSION;i++) {
		draw_sprite(buffer,tab[i].image_explosion,*tab[i].pos_x,*tab[i].pos_y) ;
	}


}

void deplacer_explosion(explosion e) {
	while (*e.pos_y>0) {
		*e.pos_y -- ;

	}
}



void deplacer_explosions(joueur j , int marge, explosion tab[NB_EXPLOSION]) {
	int i ;
	int m ;

	for (i=0;i<NB_EXPLOSION;i++) {
		m = marge +rand()%marge;
		if (*j.pos_x+m==*tab[i].pos_x) {
			deplacer_explosion(tab[i]) ;
		}
	}


}

